创作一个数字人,总共分几步?(上)
今年,由Unity Demo团队倾力打造的实时渲染短片《异教徒》实力收割了一大波好评,Unity也因此成为了大家口中“被游戏耽误的影视公司。”
上个月,我们与大家分享了Unity Demo Team的3D任务/环境艺术家Plamen‘Paco’ Tamnev对《异教徒》环境美术的创作详解(点击回看)。这次,我们将为大家深入解读《异教徒》主角Gawain的创作过程。
《异教徒》编剧兼导演Veselin Efremov表示:“为了创造短短几分钟的电影级视觉效果,我们需要从历史、人物、政治、经济等方面从零构建起一个完整的世界。这点是我们在创作中一直秉承的理念,每一次展示,都只是对一个宏大世界的一瞥。此次我们探索了一种不是基于视觉而是基于触摸的人机界面,这是一种纯粹的触觉体验。这种体验已经在一定程度上应用在了在智能手表和盲文字母表中,我们此次应用于Gawain(异教徒主角)的手臂装置将其带入新的高度。不基于单个机箱而是由复合半独立元件组成的机器人技术也很有趣,这些元件可以根据手头的任务组装成不同的构造。”
选角与制片
首先,我们委托了一家经纪公司来选择演员。戏剧演员Jake Fairbrother被选中担任这一角色,这是他第一个数字影片角色。
我们先后共进行了4次数据收集,第一次是在4D Max收集了演员的全身扫描数据;第二次是在位于伦敦外的InfiniteRealities工作室收集了演员的3D面部扫描和第一批4D动作表演的数据;第三次,在位于Sofia的动作捕捉工作室收集了更多动作表演数据;最后,为了展示更完美的影片效果,我们又回到Infinite Realities工作室制作额外的4D表演。所有的声音都是在伦敦的SideUK工作室录制的。
艺术概念
《异教徒》项目开始于Georgi Simeonov的一些早期概念设计图,在与导演Veselin Efremov讨论后,他制作了几种不同风格的人物。Gawain手中的手提箱作为故事中的基本元素,所以几乎在所有版本中都有呈现。
在第二阶段,Geroge和导演又讨论了概念图中哪些部分比较合适,哪些概念需要进一步拓展。这里比较有意思的一点是Gawain服装设计中加入了一点中世纪骑士的元素。
Gawain概念图的最终版
头部
最终影片中的Gawain
《异教徒》建模师PLAMEN表示:“在收到Infinite Realities的最初扫描数据和清理过的无表情面部模型后,我们与动画导演Krasimir Nechevski开会讨论了制作服装和动画时需要明确的技术细节,例如面部的UV贴图,不同纹理的分割方式与位置,头部与身体的分割点。导演自开始就强调头部与身体分割点的重要性,他希望在面部特写中看到尽可能多的脖子及周围区域。”
不同部位的纹理有不同的分辨率,身体和腿部纹理分辨率远比面部纹理要低,因为两者并不会在镜头中长时间出现。在确定方向后,我们调整了扫描数据,并将其转移到了新的模型上。
眼睛
眼部经过了许多次的打磨和微调,导演Vess为我们提供了很多创意指导和改动的方向,指出了许多可以改进的地方。
眼部动画技术由Lasse Pedersen和Nicolas Brancaccio联手完成。角膜、虹膜和巩膜使用了同一个网格,而眼睛效果则由Unity中的着色器来控制。在眼睑周围的网格主要是让眼球和眼睑的过渡更为平滑,也是眼睛的睑裂。
部分着色器控制示例,眼睛可直接使用AO,不必再使用烘焙的阴影网格来做出被遮盖的效果。
牙齿
Lasse Pedersen添加了牙齿在嘴中的阴影控制,方便了特写镜头的着色
由于没有扫描模型,我们根据演员的牙齿制作了模型和纹理
本文中所提到的技术栈、着色器和所有工具都可在最近发布的Digital Human资源包中找到。我们正在攥写深入介绍皮肤附着系统、着色器及其它技术细节的博文,请持续关注。
这是在导入Unity编辑器之前,Marmoset Toolbag 3中成品资源的截图。在制作纹理时,用不同光照条件测试材质效果会更快捷。
人物的UV贴图。我在此处花费了大量精力,让4K纹理能有尽可能多的细节。
面部表情
动画导演Krasimir:“开发一个数字人类的制作流程是制作这部影片的主要目标,也是团队的主要成就。在先前制作机器人或恐怖的怪物时我们尽量避免涉及数字人类,但是现在我们觉得时机已经成熟。制作中有许多的困难——皮肤、头发、牙齿和眼睛的着色都是互不相通且极具挑战的领域,但制作数字人类最为困难的部分应该是重现面部运动与微表情。如果处理不当就会导致观众感到不适,这就是著名的‘恐怖谷’效应。”
为人物脸部添加动画的方法有很多——Blendshape骨架、4D动画(带体积的视频)、机器学习、模拟,它们都各有优劣,而我们选择了一种非传统的方法。这里我将按顺序来解释方法背后的考虑及其流程。总结起来,我们直接使用了4D动画,仅添加骨架上的褶皱贴图(Wrinkle Map)到模型上。
值得注意的是,最近机器学习在处理2D影像、制作逼真的表情动画方面有了很大的进步,有几部作品通过合成3D面部表演都达到了非常出色的效果。可以说ML将在未来被用于解决面部表演的制作问题。ML中最重要的步骤是搜集大量的数据,4D采样数据必须干净,才能借助技术实现完全合成的面部表演。
首先,我们需要验证这个概念。我们使用该方法制作了一个简短的动画片段,如果不合适就抛弃这种动画。Infinite Realities开发的4D动作捕捉系统已经有了不小的成果,我们与工作室合作录制了几段早期片段。
虽然系统制作出的动画的确很好,但使用4D依旧有一些挑战。首先,由于方法有些许缺陷,扫描数据有些许的瑕疵。由于头发或可见度问题,部分皮肤表面未能被捕捉,图像会有许多微小的噪点,反射性表面会有很多瑕疵,摄制时需要头部稳定,帧之间的网格缺乏连贯性。
未处理的网格
4D捕捉而来的纹理
上方可以看到未经处理、用点表示的数据是什么样的。体积视频每一帧都由大量独特的三角形构成。
幸好这里已经有现成的解决方案——由Russian3DScanner开发的Warp3D软件。软件可利用基于线条的Blendshape制作连贯的网格。在最初尝试时,我们在Wrap3D中手动清除了许多数据,软件会在演员面部加上一整套点作为标记,再将网格套用到所有帧上,形成一套连贯的网格。
光有点作为标记并不够,人工设定点的位置难免出现错误。为此,Wrap3D中功能可借助光流和纹理分析来让连续帧的像素互相匹配。在每帧上投射纹理后,我们就得到了一套带有相同拓扑的网格流水线。在解决这个问题后,我们还需处理噪点一类的图像瑕疵,将正常的网格移植到瑕疵处。4D数据处理的首席编程Lasse Pedersen开发了一套在Unity中使用的数据导入和编辑工具。
虽然结果尚可,但图像经过处理、降噪后的图像变得过于平滑,缺少了像毛孔这类微型细节。我们认为可以通过添加更多动画细节来进一步提升图像质量。为此,我们使用了SnappersTech开发的FACS骨架,其拓扑与我们的4D数据相同。Lasse开发的解算器成功地在骨架上给褶皱贴图添加了动画,实现了毛孔级别的细节。下方是实验后期的一个例子。
随后网格数据用DCC清理完毕。Lasse开发的工具有许多的潜力和用例,他本人正攥写相关的深度博文,请持续关注。所有工具都包括在了最近发布的Digital Human资源包中。
在项目第一部分的完成期限前,我有幸在某场会议上遇到了Wrap3D的开发者们,并与之达成了合作。合作非常成功,他们清理后的4D数据运行非常迅速、质量非常高。
结果虽然并不完美,但也没有“恐怖谷”的感觉,因此我们更加确定可以沿着这条路走下去。在测试结束、验证管线后,我们决定继续与Infinite Realities和Russian3DScanner合作,使用处理后的4D数据在影片的第二部分加入更多的面部表演和特写。而两家合作伙伴也在不断地改进工具和设备,产出质量更高的成果。
为了用褶皱贴图制作出最终效果,需要有一个非常细致的面部骨架。我们起初计划在远离摄像机的位置使用骨架制作面部表演。
FACS骨架是制作面部表演的主流方案。方案源自1978年Paul Ekman开发的FACS(Facial Action Coding System,面部动作编程系统),是系统化表情分类的常见标准系统,也是精神病学家和动画师的实用工具。FACS骨架糅合上百个夸张表情的Blendshape作为AU(Action Unit,动作单元),每个单元发生位移都会牵动近乎所有的面部肌肉。这些形状加入动画后通过所谓的矫正或间隔Blendshape来改正错误的动画。接着HMC(头戴摄像机)捕捉演员的面部表演,来控制复杂的模型系统、驱动相应的Blendshape。
视窗中的面部骨架
在制作眼睛动画方面,Christian Kardach开发了一款使用计算机视觉的工具,来追踪Maya渲染图中的虹膜。
4D还存在面部动作与身体动作的结合难题。捕捉高质量面部表演的设备体积巨大,捕捉范围有限,拍摄时演员需要坐着不动,头部的可动范围也很有限。而在随后拍摄动作捕捉时,表演需要尽可能地契合面部动作。只可惜目前市面上并不存在可以借助头戴设备捕捉这种高清4D动画的技术。
《异教徒》数字人类Gawain的头部及面部制作细节分享结束,下一期,我们会为大家揭秘Gawain的身体以及衣物制作的幕后。